home *** CD-ROM | disk | FTP | other *** search
/ User's Choice Windows CD / User's Choice Windows CD (CMS Software)(1993).iso / utility3 / jfklib.zip / DIALOG.CPP < prev    next >
Text File  |  1991-05-11  |  1KB  |  73 lines

  1. /*
  2.     DIALOG.CPP - Generic DialogBox-Class
  3.     (C) 1991 by Joachim Kainz 'On a mission from Bhudda'
  4. */
  5.     #include "dialog.hpp"
  6.     #include "dlgtemp.hpp"
  7.  
  8.     FARPROC2 DIALOG::lpFnOOPWndProc = NULL;
  9.  
  10.     EXPORT DIALOG::DIALOG (
  11.                 LPSTR    lpDlg,
  12.                 HWND    hWndParent,
  13.                 HICON    hIcon,
  14.                 FARPROC lpfnProc,
  15.                 DWORD    dwParam
  16.     ):    WINDOW (
  17.             NULL,
  18.             LoadCursor (NULL, IDC_ARROW),
  19.             hIcon,
  20.             COLOR_WINDOW+1,
  21.             0,
  22.             DLGWINDOWEXTRA,
  23.             "jfk",
  24.             DefDlgProc
  25.         )
  26.     {
  27.         DLGTEMPLATE dlg (lpDlg);
  28.  
  29.         dlg.SetClass ("jfk");
  30.  
  31.         PSTR pDlg = (PSTR) dlg;
  32.  
  33.         if (!pDlg)
  34.             return;
  35.  
  36.         hWnd = CreateDialogIndirectParam (
  37.                     GetInstance (),
  38.                     (LPSTR) pDlg,
  39.                     hWndParent,
  40.                     lpfnProc,
  41.                     dwParam
  42.                );
  43.  
  44.         LocalFree ((HANDLE) pDlg);
  45.  
  46.         if (!hWnd)
  47.             return;
  48.  
  49.         SetWindowLong (GetWindowHandle (), DLGWINDOWEXTRA, (long) this);
  50.  
  51.         lpDefWndProc =
  52.                 (FARPROC2) SetWindowLong (
  53.                             GetWindowHandle (),
  54.                             GWL_WNDPROC,
  55.                             (long) GetOOPWndProc ()
  56.                            );
  57.  
  58.         SendMessage    (self, WM_INITDIALOG, NULL, dwParam);
  59.  
  60.         wResult = NULL;
  61.     }
  62.  
  63.     FARPROC2 DIALOG::GetOOPWndProc () const
  64.     {
  65.         if (!lpFnOOPWndProc)
  66.              lpFnOOPWndProc = (FARPROC2) MakeProcInstance (
  67.                                             (FARPROC) DefOOPDlgProc,
  68.                                             GetInstance ()
  69.                                          );
  70.  
  71.         return lpFnOOPWndProc;
  72.     }
  73.